/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Action;

import Util.XML;
import com.opensymphony.xwork2.ActionSupport;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;


/**
 *
 * @author Isadora
 */
public class FileUploadAction extends ActionSupport {

    private File upload; 
    private String uploadFileName; //nome do arquivo enviado
    private String uploadContentType; //contexto do arquivo, imagem, txt etc...    
    
    public File getUpload() {
        return upload;
    }
    
    public String moveArquivo_projetos() throws JDOMException, IOException{
        String resultado = "";
        try{
            XML xml = new XML();
            copyFile(upload, new File("C:\\Users\\isadora.paranhos\\Desktop\\29-6\\8-2\\"+ uploadFileName)); 
            resultado = verificaArquivo_projetos();
            if (resultado.equals("sim")){
               xml.gravaProjeto();
               return SUCCESS;
            }
            else
               return INPUT;
        }
        catch(Exception e){
            e.printStackTrace();
            return INPUT;
        }
      }
    
    public String moveArquivo_processos() throws JDOMException, IOException{
        String resultado = "nao";
        try {
            XML xml = new XML();
            copyFile(upload, new File("C:\\Users\\isadora.paranhos\\Desktop\\29-6\\8-2\\"+ uploadFileName)); 
            resultado = verificaArquivo_processos();
            if (resultado.equals("sim")){
                xml.gravaProcesso();
                return SUCCESS;
            }
            else
                return INPUT;
        }
        catch (Exception e){
            return INPUT;
        }
    }
    
    public String moveArquivo_classificacoes() throws JDOMException, IOException{
        String resultado = "nao";
        try{
           
        XML xml = new XML();
        copyFile(upload, new File("C:\\Users\\isadora.paranhos\\Desktop\\29-6\\8-2\\"+ uploadFileName)); 
        resultado = verificaArquivo_classificacoes();
        if (resultado.equals("sim")){
           xml.gravaClassificacoesProjeto(); 
           return SUCCESS;
        }
        else
            return INPUT;
        }
        catch (Exception e){
            return INPUT;
        }
    }
    
    public String verificaArquivo_classificacoes() throws JDOMException, IOException{
        String resultado = "";
        //Aqui você informa o nome do arquivo XML.  
        File f = new File("C:\\Users\\isadora.paranhos\\Desktop\\29-6\\8-2\\"+ uploadFileName);  

        //Criamos uma classe SAXBuilder que vai processar o XML4  
        SAXBuilder sb = new SAXBuilder();  

        //Este documento agora possui toda a estrutura do arquivo.  
        Document d = sb.build(f);  

        //Recuperamos o elemento root  
        Element mural = d.getRootElement();
        
        if (mural.getName().equals("classificacoes_projeto"))
            resultado = "sim";
        else
            resultado = "nao";
        return resultado;
    }
    
        public String verificaArquivo_processos() throws JDOMException, IOException{
        String resultado = "";
        //Aqui você informa o nome do arquivo XML.  
        File f = new File("C:\\Users\\isadora.paranhos\\Desktop\\29-6\\8-2\\"+ uploadFileName);  

        //Criamos uma classe SAXBuilder que vai processar o XML4  
        SAXBuilder sb = new SAXBuilder();  

        //Este documento agora possui toda a estrutura do arquivo.  
        Document d = sb.build(f);  

        //Recuperamos o elemento root  
        Element mural = d.getRootElement();
        
        if (mural.getName().equals("processos"))
            resultado = "sim";
        else
            resultado = "nao";
        return resultado;
    }
    
    public String verificaArquivo_projetos() throws JDOMException, IOException{
        String resultado = "";
        //Aqui você informa o nome do arquivo XML.  
        File f = new File("C:\\Users\\isadora.paranhos\\Desktop\\29-6\\8-2\\"+ uploadFileName);  

        //Criamos uma classe SAXBuilder que vai processar o XML4  
        SAXBuilder sb = new SAXBuilder();  

        //Este documento agora possui toda a estrutura do arquivo.  
        Document d = sb.build(f);  

        //Recuperamos o elemento root  
        Element mural = d.getRootElement();
        
        if (mural.getName().equals("projetos"))
            resultado = "sim";
        else
            resultado = "nao";
        return resultado;
    }
    // Metodo que move o arquivo para o diretorio desejado
 
    private static void copyFile(File in, File out) {
        
        try {
            FileChannel sourceChannel = new FileInputStream(in).getChannel();
            FileChannel destinationChannel = new FileOutputStream(out).getChannel();
            sourceChannel.transferTo(0, sourceChannel.size(), destinationChannel);
            sourceChannel.close();
            destinationChannel.close();
        } catch (IOException ex) {
        }
    }

    public void setUpload(File upload) {
        this.upload = upload;
    }

    public String getUploadFileName() {
        return uploadFileName;
    }

    public void setUploadFileName(String uploadFileName) {
        this.uploadFileName = uploadFileName;
    }

    public String getUploadContentType() {
        return uploadContentType;
    }

    public void setUploadContentType(String uploadContentType) {
        this.uploadContentType = uploadContentType;
    } 

}



